A smart card is a plastic card into which an integrated circuit (IC) may be installed, and may be similar to a credit card. Standards for smart card technology have been defined by the International Standards Organization (ISO) and the Joint Technical Committee 1 (JTC1) of the International Electronic Committee (IEC). The International standard series ISO/IEC 7816 defines various characteristics of smart cards, such as physical properties, physical connections, electronic signals, transmission protocols, commands, security architectures, application identifiers, and general data elements.
Smart cards have been considered for use as multimedia information apparatus as they may provide better data retention than conventional magnetic cards and may provide better security. Smart cards may have the advantage of high security and large data storage capacity, which may be suitable for a wide range of applications. Accordingly, smart cards have been used in applications in various fields, such as finance, distribution, traffic, mobile communication, and other applications.
FIG. 1 is a block diagram that illustrates a conventional smart card architecture. The smart card includes a CPU 11, ROM 12, RAM 13, EEPROM 14, I/O module 15, and bus 16 as shown. The CPU 11 may be configured to control overall data processing and arithmetic operations. The ROM 12 may be configured to store the operating system, boot code, and the initialization program. The RAM 13 may be used to store modifiable program(s) and/or temporary data. The EEPROM 14 may be used to store one or more application programs. The I/O module 15 may be used to allow the CPU 11 to communicate with an external device. The CPU 11, ROM 12, RAM 13, and EEPROM 14 are coupled by a bus 16. The bus 16 may include both a data bus and an address bus. The data bus may carry electrical signals between the CPU 11, ROM 12, RAM 13, and EEPROM 14, along with any other devices that may be connected to the bus 16, for the purpose of transferring data between them. The address bus may connect the CPU 11 to the main memory device(s) to identify particular locations (addresses) in the main memory. The width of the address bus determines how many unique memory locations can be addressed.
In smart card devices, it may be important to protect the confidentiality and integrity of the data carried on the data bus. Likewise, it may also be important to protect the integrity of the addresses carried on the address bus. If the data and/or addresses stored/used in the smart card are not secure, then a user or a system operator may be hesitant to store private or secret information in a smart card. Unauthorized access to a smart card is sometimes called “tempering.” Tempering techniques include invasive attacks using microprobes and non-invasive attacks using software tools. Non-invasive attacks can involve performing a side channel analysis that decrypts a key code of a cryptographic algorithm (e.g., DES algorithm) using a pattern of power consumption (or current dissipation) or timing differences due to operations of the smart card. Side channel analysis techniques can be classified as simple power analysis (SPA) and differential power analysis (DPA). DPA and SPA are methods of analyzing a power signal generated by a low power consumption device, such as a smart card, in the course of calculations (or operations) to discover secret information stored in the smart card when the block cipher algorithm is applied to the smart card. DPA and SPA can be carried out based on the attacker estimating a specific bit of a cipher text after one round, which corresponds to a plaintext if the plaintext is known. One countermeasure to DPA and SPA is to prevent the attacker from knowing the plaintext in the course of calculations carried out inside the smart card.
Various countermeasures against DPA and SPA have been proposed. The countermeasures include hardware methods and software methods. The hardware methods include generating a noise power, randomizing an operation sequence, and/or filtering a power signal. The software methods include masking techniques in which a random number is generated inside a smart card and the random number is exclusive-OR'd with plaintext to make the plaintext be seen as a random number, thereby disabling power analysis.